有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

可选参数初始化Java字符串文字时出错

当要初始化的代码在检查par1是否有值的范围内时,这个java字符串文本初始化会给出错误。我不确定我是在做什么,还是其他什么问题

enter image description here

public class optionalFields {

    public static void main(String args[])
    {
        optional_func(Optional.of(true));
    }

        public static void optional_func(Optional<Boolean> par1)
    {
        if(par1.isPresent())
            String s = "test";
        System.out.println(s);
    }
 }

共 (1) 个答案

  1. # 1 楼答案

    应该是:

    if (par1.isPresent()) {
        String s = "test";
        System.out.println(s);
    }
    

    除非将声明放在块中,否则不能在if语句中声明变量。此外,由于您正在打印s,所以println语句也应该位于if语句块内

    如果要打印s,即使条件为false,也应该是:

    String s = null;
    if (par1.isPresent())
        s = "test";
    System.out.println(s);